﻿using J.StatusModel;
using J.StatusModel.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StatusService
{
    public interface IRoomTypeService
    {
        /// <summary>
        /// 返回房型列表
        /// </summary>
        /// <returns></returns>
        Task<(int totalCount,int pageCount, List<RoomTypeCountDto> list)> GetRoomType(int pageIndex,int pageSize,string?roomTypeName);
        /// <summary>
        /// 返回房型dto
        /// </summary>
        /// <returns></returns>
        Task<List<RoomTypeDto>> RoomTypeDto();
        /// <summary>
        /// 房型批量删除
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task<int> DeleteRangeRoomType(string id);
        /// <summary>
        /// 房型回显
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<RoomTypeModel> FindRoomType(int id);
        /// <summary>
        /// 房型添加
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task<int> AddRoomType(RoomTypeModel model);
        /// <summary>
        /// 房型修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task<int> UpdateRoomType(RoomTypeModel model);
        /// <summary>
        /// 返回可定的房号
        /// </summary>
        /// <param name="roomTypeId"></param>
        /// <returns></returns>
        Task<List<RoomNumManage>> ReturnRoomNum(int roomTypeId);
        /// <summary>
        /// 房号数量计算
        /// </summary>
        /// <param name="roomTypeId"></param>
        /// <returns></returns>
        Task<int> RoomNumCount(int roomTypeId);
        /// <summary>
        /// 返回所有房型
        /// </summary>
        /// <returns></returns>
        Task<List<RoomTypeModel>> GetAllRoomType();
    }
}
